home *** CD-ROM | disk | FTP | other *** search
/ Freelog 117 / FreelogNo117-OctobreNovembre2013.iso / Programmation / jedit / jedit5.1.0install.exe / {app} / modes / ada.xml < prev    next >
Extensible Markup Language  |  2013-07-28  |  14KB  |  351 lines

  1. <?xml version="1.0"?>
  2. <!DOCTYPE MODE SYSTEM "xmode.dtd">
  3.  
  4. <!--
  5.  
  6. This is a jedit mode file for Ada programming language.
  7. Copyright (C) 2012 Peter C. Chapin (pchapin@sf)
  8.  
  9. This program is free software; you can redistribute it and/or
  10. modify it under the terms of the GNU General Public License
  11. as published by the Free Software Foundation; either version 2
  12. of the License, or (at your option) any later version.
  13.  
  14. This program is distributed in the hope that it will be useful,
  15. but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17. GNU General Public License for more details.
  18.  
  19. You should have received a copy of the GNU General Public License
  20. along with this program; if not, write to the Free Software
  21. Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  22. -->
  23.  
  24. <!-- TODO: Support based literals as numeric literals: 16#FF#
  25.            Support numeric literals with an exponent: 1.0e2, 1e2. -->
  26.  
  27. <MODE>
  28.     <PROPS>
  29.         <PROPERTY NAME="lineComment" VALUE="--" />
  30.         <PROPERTY NAME="indentNextLines"
  31.             VALUE=".*(begin|declare|do|else|elsif|exception|generic|is|loop|private|record|select|tagged|then|with|=>|:=)\s*(--.*)?$"/>
  32.         <PROPERTY NAME="unindentThisLine"
  33.             VALUE="^\s*end\b.*;"/>
  34.         <PROPERTY NAME="unindentNextLines"
  35.             VALUE="^\s*end\b.*;"/>
  36.         <PROPERTY NAME="electricKeys" VALUE=";"/>
  37.     </PROPS>
  38.  
  39.     <RULES IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="TRUE">
  40.         <!-- SPARK annotation comments. -->
  41.         <EOL_SPAN TYPE="COMMENT2">--#</EOL_SPAN>
  42.         <!-- Normal comments. -->
  43.         <EOL_SPAN TYPE="COMMENT1">--</EOL_SPAN>
  44.  
  45.         <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
  46.             <BEGIN>"</BEGIN>
  47.             <END>"</END>
  48.         </SPAN>
  49.         
  50.         <!-- Operators and Related -->
  51.         <SEQ TYPE="OPERATOR">)</SEQ>
  52.         <SEQ TYPE="OPERATOR">(</SEQ>
  53.         <SEQ TYPE="OPERATOR">..</SEQ>
  54.         <SEQ TYPE="OPERATOR">.all</SEQ>
  55.         <SEQ TYPE="OPERATOR">:=</SEQ>
  56.         <SEQ TYPE="OPERATOR">/=</SEQ>
  57.         <SEQ TYPE="OPERATOR">=></SEQ>
  58.         <SEQ TYPE="OPERATOR">=</SEQ>
  59.         <SEQ TYPE="NULL"><></SEQ>
  60.         <SEQ TYPE="LABEL"><<</SEQ>
  61.         <SEQ TYPE="LABEL">>></SEQ>
  62.         <SEQ TYPE="OPERATOR">>=</SEQ>
  63.         <SEQ TYPE="OPERATOR"><=</SEQ>
  64.         <SEQ TYPE="OPERATOR">></SEQ>
  65.         <SEQ TYPE="OPERATOR"><</SEQ>
  66.         <SEQ TYPE="OPERATOR">&</SEQ>
  67.         <SEQ TYPE="OPERATOR">+</SEQ>
  68.         <SEQ TYPE="OPERATOR">-</SEQ>
  69.         <SEQ TYPE="OPERATOR">/</SEQ>
  70.         <SEQ TYPE="OPERATOR">**</SEQ>
  71.         <SEQ TYPE="OPERATOR">*</SEQ>
  72.  
  73.         <!-- Predefined Attributes -->
  74.         <!-- From Section K.2 "Language-Defined Attributes" in the Ada Reference Manual. -->
  75.         <SEQ TYPE="KEYWORD3">'access</SEQ>
  76.         <SEQ TYPE="KEYWORD3">'address</SEQ>
  77.         <SEQ TYPE="KEYWORD3">'adjacent</SEQ>
  78.         <SEQ TYPE="KEYWORD3">'aft</SEQ>
  79.         <SEQ TYPE="KEYWORD3">'alignment</SEQ>
  80.         <SEQ TYPE="KEYWORD3">'base</SEQ>
  81.         <SEQ TYPE="KEYWORD3">'bit_order</SEQ>
  82.         <SEQ TYPE="KEYWORD3">'body_version</SEQ>
  83.         <SEQ TYPE="KEYWORD3">'callable</SEQ>
  84.         <SEQ TYPE="KEYWORD3">'caller</SEQ>
  85.         <SEQ TYPE="KEYWORD3">'ceiling</SEQ>
  86.         <SEQ TYPE="KEYWORD3">'class</SEQ>
  87.         <SEQ TYPE="KEYWORD3">'component_size</SEQ>
  88.         <SEQ TYPE="KEYWORD3">'compose</SEQ>
  89.         <SEQ TYPE="KEYWORD3">'constrained</SEQ>
  90.         <SEQ TYPE="KEYWORD3">'copy_size</SEQ>
  91.         <SEQ TYPE="KEYWORD3">'count</SEQ>
  92.         <SEQ TYPE="KEYWORD3">'definite</SEQ>
  93.         <SEQ TYPE="KEYWORD3">'delta</SEQ>
  94.         <SEQ TYPE="KEYWORD3">'denorm</SEQ>
  95.         <SEQ TYPE="KEYWORD3">'digits</SEQ>
  96.         <SEQ TYPE="KEYWORD3">'exponent</SEQ>
  97.         <SEQ TYPE="KEYWORD3">'external_tag</SEQ>
  98.         <SEQ TYPE="KEYWORD3">'first</SEQ>
  99.         <SEQ TYPE="KEYWORD3">'first_bit</SEQ>
  100.         <SEQ TYPE="KEYWORD3">'floor</SEQ>
  101.         <SEQ TYPE="KEYWORD3">'fore</SEQ>
  102.         <SEQ TYPE="KEYWORD3">'fraction</SEQ>
  103.         <SEQ TYPE="KEYWORD3">'has_same_storage</SEQ>
  104.         <SEQ TYPE="KEYWORD3">'identity</SEQ>
  105.         <SEQ TYPE="KEYWORD3">'image</SEQ>
  106.         <SEQ TYPE="KEYWORD3">'class'input</SEQ>
  107.         <SEQ TYPE="KEYWORD3">'input</SEQ>
  108.         <SEQ TYPE="KEYWORD3">'last</SEQ>
  109.         <SEQ TYPE="KEYWORD3">'last_bit</SEQ>
  110.         <SEQ TYPE="KEYWORD3">'leading_part</SEQ>
  111.         <SEQ TYPE="KEYWORD3">'length</SEQ>
  112.         <SEQ TYPE="KEYWORD3">'machine</SEQ>
  113.         <SEQ TYPE="KEYWORD3">'machine_emax</SEQ>
  114.         <SEQ TYPE="KEYWORD3">'machine_emin</SEQ>
  115.         <SEQ TYPE="KEYWORD3">'machine_mantissa</SEQ>
  116.         <SEQ TYPE="KEYWORD3">'machine_overflows</SEQ>
  117.         <SEQ TYPE="KEYWORD3">'machine_radix</SEQ>
  118.         <SEQ TYPE="KEYWORD3">'machine_rounding</SEQ>
  119.         <SEQ TYPE="KEYWORD3">'machine_rounds</SEQ>
  120.         <SEQ TYPE="KEYWORD3">'max</SEQ>
  121.         <SEQ TYPE="KEYWORD3">'max_alignment_for_allocation</SEQ>
  122.         <SEQ TYPE="KEYWORD3">'max_size_in_storage_elements</SEQ>
  123.         <SEQ TYPE="KEYWORD3">'min</SEQ>
  124.         <SEQ TYPE="KEYWORD3">'mod</SEQ>
  125.         <SEQ TYPE="KEYWORD3">'model</SEQ>
  126.         <SEQ TYPE="KEYWORD3">'model_emin</SEQ>
  127.         <SEQ TYPE="KEYWORD3">'model_epsilon</SEQ>
  128.         <SEQ TYPE="KEYWORD3">'model_mantissa</SEQ>
  129.         <SEQ TYPE="KEYWORD3">'model_small</SEQ>
  130.         <SEQ TYPE="KEYWORD3">'modulus</SEQ>
  131.         <SEQ TYPE="KEYWORD3">'old</SEQ>
  132.         <SEQ TYPE="KEYWORD3">'class'output</SEQ>
  133.         <SEQ TYPE="KEYWORD3">'output</SEQ>
  134.         <SEQ TYPE="KEYWORD3">'overlaps_storage</SEQ>
  135.         <SEQ TYPE="KEYWORD3">'partition_id</SEQ>
  136.         <SEQ TYPE="KEYWORD3">'pos</SEQ>
  137.         <SEQ TYPE="KEYWORD3">'position</SEQ>
  138.         <SEQ TYPE="KEYWORD3">'pred</SEQ>
  139.         <SEQ TYPE="KEYWORD3">'priority</SEQ>
  140.         <SEQ TYPE="KEYWORD3">'range</SEQ>
  141.         <SEQ TYPE="KEYWORD3">'class'read</SEQ>
  142.         <SEQ TYPE="KEYWORD3">'read</SEQ>
  143.         <SEQ TYPE="KEYWORD3">'remainder</SEQ>
  144.         <SEQ TYPE="KEYWORD3">'result</SEQ>
  145.         <SEQ TYPE="KEYWORD3">'round</SEQ>
  146.         <SEQ TYPE="KEYWORD3">'rounding</SEQ>
  147.         <SEQ TYPE="KEYWORD3">'safe_first</SEQ>
  148.         <SEQ TYPE="KEYWORD3">'safe_last</SEQ>
  149.         <SEQ TYPE="KEYWORD3">'scale</SEQ>
  150.         <SEQ TYPE="KEYWORD3">'scaling</SEQ>
  151.         <SEQ TYPE="KEYWORD3">'signed_zeros</SEQ>
  152.         <SEQ TYPE="KEYWORD3">'size</SEQ>
  153.         <SEQ TYPE="KEYWORD3">'small</SEQ>
  154.         <SEQ TYPE="KEYWORD3">'storage_pool</SEQ>
  155.         <SEQ TYPE="KEYWORD3">'storage_size</SEQ>
  156.         <SEQ TYPE="KEYWORD3">'stream_size</SEQ>
  157.         <SEQ TYPE="KEYWORD3">'succ</SEQ>
  158.         <SEQ TYPE="KEYWORD3">'tag</SEQ>
  159.         <SEQ TYPE="KEYWORD3">'terminated</SEQ>
  160.         <SEQ TYPE="KEYWORD3">'truncation</SEQ>
  161.         <SEQ TYPE="KEYWORD3">'unbiased_rounding</SEQ>
  162.         <SEQ TYPE="KEYWORD3">'unchecked_access</SEQ>
  163.         <SEQ TYPE="KEYWORD3">'val</SEQ>
  164.         <SEQ TYPE="KEYWORD3">'valid</SEQ>
  165.         <SEQ TYPE="KEYWORD3">'value</SEQ>
  166.         <SEQ TYPE="KEYWORD3">'version</SEQ>
  167.         <SEQ TYPE="KEYWORD3">'wide_image</SEQ>
  168.         <SEQ TYPE="KEYWORD3">'wide_value</SEQ>
  169.         <SEQ TYPE="KEYWORD3">'wide_width</SEQ>
  170.         <SEQ TYPE="KEYWORD3">'width</SEQ>
  171.         <SEQ TYPE="KEYWORD3">'wide_wide_image</SEQ>
  172.         <SEQ TYPE="KEYWORD3">'wide_wide_value</SEQ>
  173.         <SEQ TYPE="KEYWORD3">'wide_wide_width</SEQ>
  174.         <SEQ TYPE="KEYWORD3">'class'write</SEQ>
  175.         <SEQ TYPE="KEYWORD3">'write</SEQ>
  176.         
  177.         <!-- Predefined Pragmas -->
  178.         <!-- From Annex L of the Ada Reference Manual. -->
  179.         <!-- One problem with this definition is that it requires exactly one
  180.              space between the pragma keyword and the name of the pragma. -->
  181.         <SEQ TYPE="KEYWORD3">pragma all_calls_remote</SEQ>
  182.         <SEQ TYPE="KEYWORD3">pragma assert</SEQ>
  183.         <SEQ TYPE="KEYWORD3">pragma assertion_policy</SEQ>
  184.         <SEQ TYPE="KEYWORD3">pragma asynchronous</SEQ>
  185.         <SEQ TYPE="KEYWORD3">pragma atomic</SEQ>
  186.         <SEQ TYPE="KEYWORD3">pragma atomic_components</SEQ>
  187.         <SEQ TYPE="KEYWORD3">pragma attach_handler</SEQ>
  188.         <SEQ TYPE="KEYWORD3">pragma controlled</SEQ>
  189.         <SEQ TYPE="KEYWORD3">pragma convention</SEQ>
  190.         <SEQ TYPE="KEYWORD3">pragma cpu</SEQ>
  191.         <SEQ TYPE="KEYWORD3">pragma default_storage_pool</SEQ>
  192.         <SEQ TYPE="KEYWORD3">pragma detect_blocking</SEQ>
  193.         <SEQ TYPE="KEYWORD3">pragma discard_names</SEQ>
  194.         <SEQ TYPE="KEYWORD3">pragma dispatching_domain</SEQ>
  195.         <SEQ TYPE="KEYWORD3">pragma elaborate</SEQ>
  196.         <SEQ TYPE="KEYWORD3">pragma elaborate_all</SEQ>
  197.         <SEQ TYPE="KEYWORD3">pragma elaborate_body</SEQ>
  198.         <SEQ TYPE="KEYWORD3">pragma export</SEQ>
  199.         <SEQ TYPE="KEYWORD3">pragma import</SEQ>
  200.         <SEQ TYPE="KEYWORD3">pragma independent</SEQ>
  201.         <SEQ TYPE="KEYWORD3">pragam independent_components</SEQ>
  202.         <SEQ TYPE="KEYWORD3">pragma inline</SEQ>
  203.         <SEQ TYPE="KEYWORD3">pragma inspection_point</SEQ>
  204.         <SEQ TYPE="KEYWORD3">pragma interrupt_handler</SEQ>
  205.         <SEQ TYPE="KEYWORD3">pragma interrupt_priority</SEQ>
  206.         <SEQ TYPE="KEYWORD3">pragma linker_options</SEQ>
  207.         <SEQ TYPE="KEYWORD3">pragma list</SEQ>
  208.         <SEQ TYPE="KEYWORD3">pragma locking_policy</SEQ>
  209.         <SEQ TYPE="KEYWORD3">pragma no_return</SEQ>
  210.         <SEQ TYPE="KEYWORD3">pragma normalize_scalars</SEQ>
  211.         <SEQ TYPE="KEYWORD3">pragma optimize</SEQ>
  212.         <SEQ TYPE="KEYWORD3">pragma pack</SEQ>
  213.         <SEQ TYPE="KEYWORD3">pragma page</SEQ>
  214.         <SEQ TYPE="KEYWORD3">pragma partition_elaboration_policy</SEQ>
  215.         <SEQ TYPE="KEYWORD3">pragma preelaborate_initialization</SEQ>
  216.         <SEQ TYPE="KEYWORD3">pragma preelaborate</SEQ>
  217.         <SEQ TYPE="KEYWORD3">pragma priority</SEQ>
  218.         <SEQ TYPE="KEYWORD3">pragma priority_specific_dispatching</SEQ>
  219.         <SEQ TYPE="KEYWORD3">pragma profile</SEQ>
  220.         <SEQ TYPE="KEYWORD3">pragma pure</SEQ>
  221.         <SEQ TYPE="KEYWORD3">pragma queuing_policy</SEQ>
  222.         <SEQ TYPE="KEYWORD3">pragma relative_deadline</SEQ>
  223.         <SEQ TYPE="KEYWORD3">pragma remote_call_interface</SEQ>
  224.         <SEQ TYPE="KEYWORD3">pragma remote_types</SEQ>
  225.         <SEQ TYPE="KEYWORD3">pragma restrictions</SEQ>
  226.         <SEQ TYPE="KEYWORD3">pragma reviewable</SEQ>
  227.         <SEQ TYPE="KEYWORD3">pragma shared_passive</SEQ>
  228.         <SEQ TYPE="KEYWORD3">pragma storage_size</SEQ>
  229.         <SEQ TYPE="KEYWORD3">pragma suppress</SEQ>
  230.         <SEQ TYPE="KEYWORD3">pragma task_dispatching_policy</SEQ>
  231.         <SEQ TYPE="KEYWORD3">pragma unchecked_union</SEQ>
  232.         <SEQ TYPE="KEYWORD3">pragma unsuppress</SEQ>
  233.         <SEQ TYPE="KEYWORD3">pragma volatile</SEQ>
  234.         <SEQ TYPE="KEYWORD3">pragma volatile_components</SEQ>
  235.  
  236.         <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
  237.             <BEGIN>'</BEGIN>
  238.             <END>'</END>
  239.         </SPAN>
  240.  
  241.         <KEYWORDS>
  242.             <!-- Reserved words -->
  243.             <!-- The first three are special. Coloring them differently makes it
  244.                  easier to locate subprograms in the file. -->
  245.             <KEYWORD1>entry</KEYWORD1>
  246.             <KEYWORD1>function</KEYWORD1>
  247.             <KEYWORD1>procedure</KEYWORD1>
  248.  
  249.             <KEYWORD2>abort</KEYWORD2>
  250.             <KEYWORD2>abs</KEYWORD2>
  251.             <KEYWORD2>abstract</KEYWORD2>
  252.             <KEYWORD2>accept</KEYWORD2>
  253.             <KEYWORD2>access</KEYWORD2>
  254.             <KEYWORD2>aliased</KEYWORD2>
  255.             <KEYWORD2>all</KEYWORD2>
  256.             <KEYWORD2>and</KEYWORD2>
  257.             <KEYWORD2>array</KEYWORD2>
  258.             <KEYWORD2>at</KEYWORD2>
  259.             <KEYWORD2>begin</KEYWORD2>
  260.             <KEYWORD2>body</KEYWORD2>
  261.             <KEYWORD2>case</KEYWORD2>
  262.             <KEYWORD2>constant</KEYWORD2>
  263.             <KEYWORD2>declare</KEYWORD2>
  264.             <KEYWORD2>delay</KEYWORD2>
  265.             <KEYWORD2>delta</KEYWORD2>
  266.             <KEYWORD2>digits</KEYWORD2>
  267.             <KEYWORD2>do</KEYWORD2>
  268.             <KEYWORD2>else</KEYWORD2>
  269.             <KEYWORD2>elsif</KEYWORD2>
  270.             <KEYWORD2>end</KEYWORD2>
  271.             <KEYWORD2>exception</KEYWORD2>
  272.             <KEYWORD2>exit</KEYWORD2>
  273.             <KEYWORD2>for</KEYWORD2>
  274.             <KEYWORD2>generic</KEYWORD2>
  275.             <KEYWORD2>goto</KEYWORD2>
  276.             <KEYWORD2>if</KEYWORD2>
  277.             <KEYWORD2>in</KEYWORD2>
  278.             <KEYWORD2>interface</KEYWORD2>
  279.             <KEYWORD2>is</KEYWORD2>
  280.             <KEYWORD2>limited</KEYWORD2>
  281.             <KEYWORD2>loop</KEYWORD2>
  282.             <KEYWORD2>mod</KEYWORD2>
  283.             <KEYWORD2>new</KEYWORD2>
  284.             <KEYWORD2>not</KEYWORD2>
  285.             <KEYWORD2>null</KEYWORD2>  <!-- This is also used as an access value. -->
  286.             <KEYWORD2>of</KEYWORD2>
  287.             <KEYWORD2>or</KEYWORD2>
  288.             <KEYWORD2>others</KEYWORD2>
  289.             <KEYWORD2>out</KEYWORD2>
  290.             <KEYWORD2>overriding</KEYWORD2>
  291.             <KEYWORD2>package</KEYWORD2>
  292.             <KEYWORD3>pragma</KEYWORD3>  <!-- Special case -->
  293.             <KEYWORD2>private</KEYWORD2>
  294.             <KEYWORD2>protected</KEYWORD2>
  295.             <KEYWORD2>raise</KEYWORD2>
  296.             <KEYWORD2>range</KEYWORD2>
  297.             <KEYWORD2>record</KEYWORD2>
  298.             <KEYWORD2>rem</KEYWORD2>
  299.             <KEYWORD2>renames</KEYWORD2>
  300.             <KEYWORD2>requeue</KEYWORD2>
  301.             <KEYWORD2>return</KEYWORD2>
  302.             <KEYWORD2>reverse</KEYWORD2>
  303.             <KEYWORD2>select</KEYWORD2>
  304.             <KEYWORD2>separate</KEYWORD2>
  305.             <KEYWORD2>some</KEYWORD2>
  306.             <KEYWORD2>subtype</KEYWORD2>
  307.             <KEYWORD2>synchronized</KEYWORD2>
  308.             <KEYWORD2>tagged</KEYWORD2>
  309.             <KEYWORD2>task</KEYWORD2>
  310.             <KEYWORD2>terminate</KEYWORD2>
  311.             <KEYWORD2>then</KEYWORD2>
  312.             <KEYWORD2>type</KEYWORD2>
  313.             <KEYWORD2>until</KEYWORD2>
  314.             <KEYWORD2>use</KEYWORD2>
  315.             <KEYWORD2>when</KEYWORD2>
  316.             <KEYWORD2>while</KEYWORD2>
  317.             <KEYWORD2>with</KEYWORD2>
  318.             <KEYWORD2>xor</KEYWORD2>
  319.  
  320.             <!-- Literals -->
  321.             <LITERAL1>false</LITERAL1>
  322.             <LITERAL1>true</LITERAL1>
  323.             
  324.             <!-- Pre-defined types (in package Standard). -->
  325.             <LITERAL2>address</LITERAL2>
  326.             <LITERAL2>boolean</LITERAL2>
  327.             <LITERAL2>character</LITERAL2>
  328.             <LITERAL2>duration</LITERAL2>
  329.             <LITERAL2>float</LITERAL2>
  330.             <LITERAL2>integer</LITERAL2>
  331.             <LITERAL2>latin_1</LITERAL2>
  332.             <LITERAL2>natural</LITERAL2>
  333.             <LITERAL2>positive</LITERAL2>
  334.             <LITERAL2>string</LITERAL2>
  335.             <LITERAL2>time</LITERAL2>
  336.             <LITERAL2>wide_character</LITERAL2>
  337.             <LITERAL2>wide_wide_character</LITERAL2>
  338.             <LITERAL2>wide_string</LITERAL2>
  339.             <LITERAL2>wide_wide_string</LITERAL2>
  340.  
  341.       <!-- Pre-defined exceptions (in package Standard). -->
  342.       <LITERAL2>constraint_error</LITERAL2>
  343.       <LITERAL2>program_error</LITERAL2>
  344.       <LITERAL2>storage_error</LITERAL2>
  345.       <LITERAL2>tasking_error</LITERAL2>
  346.  
  347.         </KEYWORDS>
  348.     </RULES>
  349. </MODE>
  350.  
  351.